<?php
class RegistroEqs extends Controller
{

	public function __construct()
	{
		parent::Controller();
		$this->load->model(array('registroeqsmodel','tipoerrormodel','usuarios','mdepartamento','clasificacionmodel','usuarios'));
		$this->load->library(array('chcalendario'));
	}
	
	public function index()
	{
		$this->load->view('main',array('content_page' => 'registroeqs_list', 'menutop' => 0));
	}
	
	public function suegerenciaQuejas()
	{
		$this->load->view('main',array('content_page' => 'quejasugerencias_list', 'menutop' => 0));
	}
	
	public function registro_histroico()
	{
		$this->load->view('main',array('content_page' => 'registrohistoricoeqs_list', 'menutop' => 0));
	}
	
	public function quejassugerenciahist()
	{
		$this->load->view('main',array('content_page' => 'quejassugerenciahistorico_list', 'menutop' => 0));
	}
	
	public function data($filtro = FALSE)
	{
		
		 $page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		 $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'id_registro'; // Columna para el order by
		 $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		 $limit = $this->input->post('rows') ? $this->input->post('rows') : 30;

		 $start = $limit * $page - $limit;
		     if($start < 0) $start = 0;
  
		      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		      header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		      header("Cache-Control: no-cache, must-revalidate" );
		      header("Pragma: no-cache" );
		      
		 $records = $this->registroeqsmodel->loadRegistro();
		 
		 $totalRecords = count($records);

		 $totalPages = ceil($totalRecords/$limit);
		     if ($page > $totalPages) 
		       $page = $totalPages;

		    $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalPages,
		            'records'	=> $totalRecords,
		            'rows'		=> array()
		        );
			
		    if($records != false){
			     foreach($records as $objetos){
                     
			     	 $fechaUsuario = explode(" ", $objetos->getFechaUsuario());
			     	 $fechaUsuario = explode("-", $fechaUsuario[0]);
			     	 
			     	 $fechaCierre =  explode(" ", $objetos->getFechaCierre());
			     	 $fechaCierre =  explode("-",  $fechaCierre[0]);
			     	 
			     
			     	 $tiempo = $this->chcalendario->calcularDias($objetos->getFechaUsuario());
			     	
			     	 $tipoError = $this->tipoerrormodel->loadRegistroById($objetos->getIdTipoError());
			     	 
			     	 $diasUsuario = $this->chcalendario->calcularDias($objetos->getFechaUsuario());
			     	 
			     	 $clasificacion = $this->clasificacionmodel->loadRegistroById($objetos->getIdClasificacion());
			     	
			     	 $porcentage = ($diasUsuario/$tipoError->getDiasError()) * 100;
			     	 
			     	 if ($porcentage <= 70) {
			     	 	$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
			     	 }else{
			     	    $imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
			     	 }
			     	  
			     	 $usuario = $this->usuarios->LoadUsuarioById($objetos->getIdUsuarioResponsable());
			     	 
			     	 $departamento = $this->mdepartamento->LoadEstatusById($usuario->getIdDepartamento());
			     	 
				     $arr = $json_output['rows'][] = array(
				          'idRegistro'    		 	=>	$objetos->getIdRegistro(),				    
				     	  'idUsuarioRegistro' 	    =>	$usuario->getNombreUsuario(),
				     	  'responsable'             =>	$usuario->getNombreUsuario(),
				     	  'detalle'					=>	$objetos->getDetalleRegistro(),
				          'FechaUsuario' 			=>	$fechaUsuario[1].'/'.$fechaUsuario[2].'/'.$fechaUsuario[0],
				     	  'tiempo'					=>	intval($tiempo),
				     	  'CompanyReferencia' 		=>	$objetos->getCompanyReferencia(),
				     	  'Departamento'			=>  $departamento->getNombre(),
				     	  'idClasificacion' 		=>	$clasificacion->getDetalleClasificacion(),
				     	  'Tipoerror' 		        =>	$tipoError->getDetalleError(),
				     	  'EstatusError'			=>  $objetos->getEstastusError(),
				     	  'FechaCierre' 		    =>	$fechaCierre,
				     	  'Semaforo'				=>  $imagen_etapa
				     	  
				      );
			      }
		      }

		 echo json_encode($json_output);    
	}
	
	public function dataHistorico($filtro = FALSE)
	{
		
	 $page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		 $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'id_registro'; // Columna para el order by
		 $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		 $limit = $this->input->post('rows') ? $this->input->post('rows') : 30;

		 $start = $limit * $page - $limit;
		     if($start < 0) $start = 0;
  
		      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		      header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		      header("Cache-Control: no-cache, must-revalidate" );
		      header("Pragma: no-cache" );
		       
		 $records = $this->registroeqsmodel->loadRegistroHistroico();
		 
		 $totalRecords = count($records);

		 $totalPages = ceil($totalRecords/$limit);
		     if ($page > $totalPages) 
		       $page = $totalPages;

		    $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalPages,
		            'records'	=> $totalRecords,
		            'rows'		=> array()
		        );

		    if($records != false){
			     foreach($records as $objetos){
                     
			     
			     	
			     	 $fechaUsuario = explode(" ", $objetos->getFechaUsuario());
			     	 $fechaUsuario = explode("-", $fechaUsuario[0]);
			     	 
			     	 $fechaCierre =  explode(" ",  $objetos->getFechaCierre());
			     	 $fechaCierreR =  explode("-",  $fechaCierre[0]);
			     	 
			     	 $tiempo = $this->chcalendario->calcularDias($objetos->getFechaSistema());
			     	
			     	 $tipoError = $this->tipoerrormodel->loadRegistroById($objetos->getIdTipoError());
			     	 
			     	 $diasUsuario = $this->chcalendario->calcularDias($objetos->getFechaUsuario());
			     	  	 
			     	 $porcentage = ($diasUsuario/$tipoError->getDiasError()) * 100;
			     	 
			     	 if ($porcentage <= 70) {
			     	 	$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
			     	 }else{
			     	    $imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
			     	 }
			     	 
			     	 $usuario = $this->usuarios->LoadUsuarioById($objetos->getIdUsuarioRegistro());
			     	 
			     	 $departamento = $this->mdepartamento->LoadEstatusById($usuario->getIdDepartamento());
			     	 
				     $arr = $json_output['rows'][] = array(
				          'idRegistro'    		 	=>	$objetos->getIdRegistro(),				    
				     	  'idUsuarioRegistro' 	    =>	$usuario->getNombreUsuario(),
				     	  'responsable'             =>	$usuario->getNombreUsuario(),
				          'FechaUsuario' 			=>	$fechaUsuario[1].'/'.$fechaUsuario[2].'/'.$fechaUsuario[0],
				     	  'idClasificacion' 		=>	$objetos->getIdClasificacion(),
				     	  'Tipoerror' 		    	=>	$tipoError->getDetalleError(),
				     	  'fechaCierre'				=>  $fechaCierreR[1].'/'.$fechaCierreR[2].'/'.$fechaCierreR[0].' '.$fechaCierre[1],
				     	  'Semaforo'				=>  $imagen_etapa,
				     	  'tipocontacto'			=>  $objetos->getTipoContacto(),
				     	   
				      );

			      }
		      }

		 echo json_encode($json_output);    
	}
	
	public function quejasSugerenciaHisitorico($filtro = FALSE)
	{
		
		 $page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		 $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'id_registro'; // Columna para el order by
		 $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		 $limit = $this->input->post('rows') ? $this->input->post('rows') : 30;

		 $start = $limit * $page - $limit;
		     if($start < 0) $start = 0;
  
		      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		      header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		      header("Cache-Control: no-cache, must-revalidate" );
		      header("Pragma: no-cache" );
		      
		 $records = $this->registroeqsmodel->loadQuejasSugerenciaHistorico();
		 
		 $totalRecords = count($records);

		 $totalPages = ceil($totalRecords/$limit);
		     if ($page > $totalPages) 
		       $page = $totalPages;

		    $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalPages,
		            'records'	=> $totalRecords,
		            'rows'		=> array()
		        );
			
		    if($records != false){
			     foreach($records as $objetos){
                     
			     	 $fechaUsuario = explode(" ", $objetos->getFechaUsuario());
			     	 $fechaUsuario = explode("-", $fechaUsuario[0]);	
			     	 $fechaRegistro = explode(" ", $objetos->getFechaSistema());
			     	 $fechaRegistro = explode("-", $fechaRegistro[0]);		     	 
			     	 $clasificacion = $this->clasificacionmodel->loadRegistroById($objetos->getIdClasificacion());
			     	 
				     $arr = $json_output['rows'][] = array(
				          'idRegistro'    		 	=>	$objetos->getIdRegistro(),				    
				          'FechaUsuario' 			=>	$fechaUsuario[1].'/'.$fechaUsuario[2].'/'.$fechaUsuario[0],
				     	  'CompanyReferencia' 		=>	$objetos->getCompanyReferencia(),
				     	  'detalle'					=>  $objetos->getDetalleRegistro(),
				     	  'idClasificacion' 		=>	$clasificacion->getDetalleClasificacion(),
				     	  'EstatusError'			=>  $objetos->getEstastusError(),
				     	  'mail'					=>  $objetos->getMail(),
				     	  'contacto'				=>  $objetos->getContacto(),
				     	  'telefono'				=>  $objetos->getTelefono(), 
				     	  'fechaSistema'			=>	$fechaRegistro[1].'/'.$fechaRegistro[2].'/'.$fechaRegistro[0],
				     	  'Comentario'				=>  $objetos->getComentario()
				      );
			      }
		      }

		 echo json_encode($json_output);    
	}
	
	public function quejasSugerencia($filtro = FALSE)
	{
		
		 $page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		 $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'id_registro'; // Columna para el order by
		 $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		 $limit = $this->input->post('rows') ? $this->input->post('rows') : 30;

		 $start = $limit * $page - $limit;
		     if($start < 0) $start = 0;
  
		      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		      header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		      header("Cache-Control: no-cache, must-revalidate" );
		      header("Pragma: no-cache" );
		      
		 $records = $this->registroeqsmodel->loadSugerenciasQuejas();
		 
		 $totalRecords = count($records);

		 $totalPages = ceil($totalRecords/$limit);
		     if ($page > $totalPages) 
		       $page = $totalPages;

		    $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalPages,
		            'records'	=> $totalRecords,
		            'rows'		=> array()
		        );
			
		    if($records != false){
			     foreach($records as $objetos){
                     
			     	 $fechaUsuario = explode(" ", $objetos->getFechaUsuario());
			     	 $fechaUsuario = explode("-", $fechaUsuario[0]);
			     	 
			     	 $fechaRegistro = explode(" ", $objetos->getFechaSistema());
			     	 $fechaRegistro = explode("-", $fechaRegistro[0]);
			     	 			     	 
			     	 $clasificacion = $this->clasificacionmodel->loadRegistroById($objetos->getIdClasificacion());
			     	 
				     $arr = $json_output['rows'][] = array(
				          'idRegistro'    		 	=>	$objetos->getIdRegistro(),				    
				          'FechaUsuario' 			=>	$fechaUsuario[1].'/'.$fechaUsuario[2].'/'.$fechaUsuario[0],
				     	  'CompanyReferencia' 		=>	$objetos->getCompanyReferencia(),
				     	  'detalle'					=>  $objetos->getDetalleRegistro(),
				     	  'idClasificacion' 		=>	$clasificacion->getDetalleClasificacion(),
				     	  'EstatusError'			=>  $objetos->getEstastusError(),
				     	  'mail'					=>  $objetos->getMail(),
				     	  'contacto'				=>  $objetos->getContacto(),
				     	  'telefono'				=>  $objetos->getTelefono(),
				     	  'fechaSistema'			=>	$fechaRegistro[1].'/'.$fechaRegistro[2].'/'.$fechaRegistro[0]
				     	  
				      );
			      }
		      }

		 echo json_encode($json_output);    
	}
	

	 public function add()
   	 {
   	 	 $tipoError = $this->tipoerrormodel->loadRegistro();
   	 	 $usuarioResponsable = $this->usuarios->LoadUsuarios();
   	 	 
   	 	 
   		 $this->load->view('main',array('content_page'   => 'registrosqs_add', 
   		 								'menutop'        => 0,
   		 								'tipoError'  	 => $tipoError,
   		 								'responsable'    => $usuarioResponsable));
   		 
  	  }
  	 
  	  public function edit($id)
   	  {
   	  	
   	    $registro = $this->registroeqsmodel->loadRegistroById($id);
   	 
   	    $tipoError = $this->tipoerrormodel->loadRegistro();
   	    $usuarioResponsable = $this->usuarios->LoadUsuarios();
   	    
   		$this->load->view('main',array('content_page'   	=> 'registroeqs_edit', 
   											'menutop'   	=> 0, 
   											'objeto'   		=> $registro,
   											'tipoError'     => $tipoError,
   											'responsable'   => $usuarioResponsable));
      }
     
      
  	  public function save()
   	  {
   	 
   	   $fechaU = $this->input->post('fechausuario');
   	   $fechaN = explode("/",  $fechaU);
   	   $fechaN = $fechaN[2].'-'.$fechaN[0].'-'.$fechaN[1];
   	   $referenciaM = strtoupper($this->input->post('referencia'));
   	   $comentario = $this->input->post('comentario');
  	   
   	   $dataArray = array("fecha_usuario"    	   		=> $fechaN.' '.date('H:i:s'),
   	                      "id_clasificacion"       		=> 1,
   	   					  "id_tipo_error"				=> $this->input->post('tipoError'),
   	   					  "id_usuario_responsable"      => $this->input->post('responsable'),
   	   					  "detalle_registro"            => $this->input->post('detalle'),
   	                      "company_referencia"          => $referenciaM,
   	   					  "id_usuario_registro"			=> $this->session->userdata('LOGGED_USR_ID'),
   	   					  "tipo_contacto"				=> 3,
   	   					  "contacto"					=> $this->input->post('contacto'),
   	   					  "telefono"					=> $this->input->post('telefono'),
   	   					  "mail"						=> $this->input->post('correo'),
   	                      "fecha_sistema"				=> date('Y-m-d H:i:s'));
   	   					 
   	   																   
   	                                                                       
   	   if ($this->input->post('idRegistro') == false) {
   	   	
   	   	   if ($this->registroeqsmodel->addRegistro($dataArray) == true){

   	   	   	   $mensaje = "El resgistro se agrego exitosamente..";
   	   	   	   
   	   	   }else{
   	   	       $mensaje = "Hubo un error...";
   	   	   }
   	   	  
   	   }else{
   	       if ($this->registroeqsmodel->upDateRegistro($dataArray, $this->input->post('idRegistro')) == true) {
   	   	   	   $mensaje = "El resgistro se edito exitosamente..";
   	   	   }else{
   	   	       $mensaje = "Hubo un error...";
   	   	   }
   	   
   	   	  }	
   	   	  
   	   	   $this->session->set_flashdata('error_title', $mensaje);
   	       redirect('registroeqs');
   	  }
   	  
   	  	 
      public function comentarioQuejas($id)
   	  {
   	  	
   		$this->load->view('main',array('content_page'   	=> 'eqscomentarioquejas', 
   									   'menutop'   	        => 0, 
   									   'id'					=> $id));														
   	  }
   	  
   	  public function terminar()
   	  {
   	  	
   	  	 $idRegistro  = $this->input->post('idRegistro');
   	  	 	  
		 $data = array("id_registro" => $idRegistro,
		 			   "Comentario"  => $this->input->post('comentario'));
	
		 if($this->registroeqsmodel->updateRegistro($data,$idRegistro) == true){
		 	
		 		$this->registroeqsmodel->deleteRegistro($idRegistro);
		 }
		 
		 		redirect('registroeqs/suegerenciaQuejas');
				
   	  }
   	  
   	  
   	  	  
   	  public function detalle($id)
   	  {
   	  	$registrosDatos =  $this->registroeqsmodel->loadRegistroById($id);
   	  	
   	  	$tipoError = $this->tipoerrormodel->loadRegistroById($registrosDatos->getIdTipoError());
   	  	
   	  	$dias = $this->chcalendario->calcularDias($registrosDatos->getFechaUsuario());
   	  	
   	 	$usuarioResponsable = $this->usuarios->LoadUsuarioById($registrosDatos->getIdUsuarioResponsable());
   	  
   	  	$porciento = ($dias/$tipoError->getDiasError()) * 100;
   	  
   	  	if($porciento <= 70)
   	  	{
   	  		$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
   	  	}else{
   	  		$imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
   	  	}
   	  	
   	    $this->load->view('main', array('content_page'         => 'registrodetalle',
   	  									'menutop'              => 0,
   	  									'detallesRegistro'	   => $registrosDatos,
   	    								'tipoError'			   => $tipoError,
   	    								'dias'	               => $dias,
   	    								'indicador'            => $imagen_etapa,
   	    								'UsuarioRes'		   => $usuarioResponsable->getNombreUsuario()));
   	  }
   	  
	  public function detalleQuejasSugere($id)
   	  {
   	  	
   	  	$registrosDatos =  $this->registroeqsmodel->loadRegistroById($id);
   	  	
   	  	$fechaSistema = $registrosDatos->getFechaSistema();
   	  	$fechaHoy = date('Y-m-d H:i:s');
   	  	
   	  	$fechaRegistro = $fechaHoy;
   	  	
   	  	$dias = $this->chcalendario->calcularDias($fechaRegistro);
   	  	
   	    $this->load->view('main', array('content_page'         => 'detallequejassugerencia',
   	  									'menutop'              => 0,
   	  									'detallesRegistro'	   => $registrosDatos));	
   	    																				
   	  }
   	   	  
     public function detallePopUps($id)
   	  {
   	  	
   	  	$registrosDatos =  $this->registroeqsmodel->loadRegistroById($id);
   	  	
   	    $this->load->view('vistaquejassugerencias',array('detallesRegistro'	 => $registrosDatos));	
   	    																				
   	  }
   	  
   	  public function delete()
   	  {
   	  				     	 
 	  	$id = $this->input->post('delete_rows');
   		$this->registroeqsmodel->deleteRegistro($id);
   		
   	  }
}